package com.loby.monitor.excess.local;

import java.io.Serializable;

/**
 * 报警时间模式
 * @author loby
 */

public enum AlarmTimeMode implements Serializable {
    /**
     * 立即报警
     */
    Immediately(0),
//        /**
//         * 实时数据立即报警
//         */
//        ReadDataImmediately(9),
//        /**
//         * 分钟数据立即报警
//         */
//        MinuteDataImmediately(10),
//        /**
//         * 小时数据立即报警
//         */
//        HourDataImmediately(11),

    /**
     * 持续时间，单位分钟
     */
    LastTime(2),
//        /**
//         * 实时数据持续时间报警，单位秒
//         */
//        RealDataLastTime(144),
//        /**
//         * 分钟数据持续时间报警，单位分钟
//         */
//        MinuteDataLastTime(160),
//        /**
//         * 小时数据持续时间报警，单位小时
//         */
//        HourDataLastTime(176),

    /**
     * 记次数报警
     */
    LastCount(4);
    //        /**
//         * 实时数据持续次数报警
//         */
//        RealDataLastCount(2304),
//        /**
//         * 分钟数据持续次数报警
//         */
//        MinuteDataLastCount(2560),
//        /**
//         * 小时数据持续次数报警
//         */
//        HourDataLastCount(2816);
    /**
     * //todo 固定时间报警是一种通知方式，不是报警判断方式
     * 不应该放这里
     */
    //StaticTime(8);

    public boolean isTypeOf(AlarmTimeMode va) {
        return (type & va.type) != 0;
    }

    static public AlarmTimeMode valueOf(int i)
    {
        switch (i)
        {
            case 0:return Immediately;
            case 2:return LastTime;
            case 4:return LastCount;
            default:return  Immediately;
        }
    }

    int type;

    AlarmTimeMode(int i) {
        type = i;
    }
}
